<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen">
</head>
<body>
    <div class="entry"> 
 <p>用于数组处理的一组函数。</p> 
 <p>数组的最大维数为四维。每一维索引编号为0至（数组大小 减 1）。例如，在50个元素的一维数组中，调用第一个元素用array[0]，最后一个元素用array[49]。</p> 
 <ul> 
  <li><strong><a href="383.html#ArrayBsearch">ArrayBsearch()</a></strong> – 数组搜索 </li> 
  <li><strong><a href="383.html#ArrayCopy">ArrayCopy()</a></strong> – 数组复制 </li> 
  <li><strong><a href="383.html#ArrayCopyRates">ArrayCopyRates()</a></strong> – 复制柱体(K线)数据到二维数组 </li> 
  <li><strong><a href="383.html#ArrayCopySeries">ArrayCopySeries()</a></strong> – 复制柱体(K线)数据到一维数组 </li> 
  <li><strong><a href="384.html#ArrayDimension">ArrayDimension()</a></strong> – 返回数组维数 </li> 
  <li><strong><a href="384.html#ArrayGetAsSeries">ArrayGetAsSeries()</a></strong> – 判断序列数组 </li> 
  <li><strong><a href="384.html#ArrayInitialize">ArrayInitialize()</a></strong> – 数组初始化 </li> 
  <li><strong><a href="384.html#ArrayIsSeries">ArrayIsSeries()</a></strong> – 判断数组是否序列化 </li> 
  <li><strong><a href="384.html#ArrayMaximum">ArrayMaximum()</a></strong> – 返回数组中最大值的位置 </li> 
  <li><strong><a href="384.html#ArrayMinimum">ArrayMinimum()</a></strong> – 返回数组中最小值的位置 </li> 
  <li><strong><a href="#ArrayRange">ArrayRange()</a></strong> – 获取数组元素个数 </li> 
  <li><strong><a href="#ArrayResize">ArrayResize()</a></strong> – 重设数组大小 </li> 
  <li><strong><a href="#ArraySetAsSeries">ArraySetAsSeries()</a></strong> – 设置为序列化数组 </li> 
  <li><strong><a href="#ArraySize">ArraySize()</a></strong> – 获取数组大小 </li> 
  <li><strong><a href="#ArraySort">ArraySort()</a></strong> – 数组排序 </li> 
 </ul> 
 <p>&nbsp;</p> 
 <h2><a name="ArrayRange"></a>ArrayRange() – 获取数组元素个数</h2> 
 <pre class="brush: mql4; toolbar: false;">int ArrayCopy(object array[], int range_index)</pre> 
 <p>返回给定数组指定维数中元素的个数。由于下标从零开始，数组的大小要比最大下标数多1。</p> 
 <p>参数:</p> 
 <pre>array[] - 需要检查的数组。
range_index - 指定的维数。 </pre> 
 <p>示例:</p> 
 <pre class="brush: mql4; toolbar: false;">int    dim_size;
double num_array[10,10,10];
dim_size=ArrayRange(num_array, 1);</pre> 
 <div class="divider top-of-page">
  <a title="Top of Page" href="#top">Back to Top</a>
 </div> 
 <h2><a name="ArrayResize"></a>ArrayResize() – 重设数组大小</h2> 
 <pre class="brush: mql4; toolbar: false;">int ArrayResize(void array[], int new_size)</pre> 
 <p>设定数组第一维的新大小。如果执行成功的话，函数将返回新数组的元素个数，否则，返回-1，数组大小并不改变。</p> 
 <p>注：函数执行完成后，在函数内局部定义和重设大小的数组将维持原样不变。在函数被重新调用后，这种数组的大小将会与定义时大小有差异。</p> 
 <p>参数:</p> 
 <pre>array[] - 需重设大小的数组。
new_size - 第一维数组大小的新值。 </pre> 
 <p>示例:</p> 
 <pre class="brush: mql4; toolbar: false;">double array1[][4];
int    element_count=ArrayResize(array1, 20);
// 新的大小 - 80个元素(每维20个元素，共4维)</pre> 
 <div class="divider top-of-page">
  <a title="Top of Page" href="#top">Back to Top</a>
 </div> 
 <h2><a name="ArraySetAsSeries"></a>ArraySetAsSeries() – 设置为序列化数组</h2> 
 <pre class="brush: mql4; toolbar: false;">bool ArraySetAsSeries(void array[], bool set)</pre> 
 <p>设定数组的排列方向。如果设置参数值为TRUE，数组将按逆序排列，也就是说，数组元素下标为0的值是最后的值。如果其值为FALSE，表明数组是一个正常的排列顺序，此函数原样返回以前的数组。</p> 
 <p>参数:</p> 
 <pre>array[] - 数值型数组。
set - 数组索引顺序，true 或者 false。</pre> 
 <p>示例:</p> 
 <pre class="brush: mql4; toolbar: false;">double macd_buffer[300];
double signal_buffer[300];
int    i,limit=ArraySize(macd_buffer);
ArraySetAsSeries(macd_buffer,true);

for(i=0; i&lt;limit; i++)
   macd_buffer[i]=iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,26,0,MODE_EMA,PRICE_CLOSE,i);

for(i=0; i&lt;limit; i++)
   signal_buffer[i]=iMAOnArray(macd_buffer,limit,9,0,MODE_SMA,i);</pre> 
 <div class="divider top-of-page">
  <a title="Top of Page" href="#top">Back to Top</a>
 </div> 
 <h2><a name="ArraySize"></a>ArraySize() – 获取数组大小</h2> 
 <pre class="brush: mql4; toolbar: false;">int ArraySize(object array[])</pre> 
 <p>返回数组元素的个数。对于一个一维数组，用ArraySize()函数返回的大小和<a href="#ArrayRange">ArrayRange</a>(array, 0)的结果相等。</p> 
 <p>参数:</p> 
 <pre>array[] - 任何类型的数组。  </pre> 
 <p>示例:</p> 
 <pre class="brush: mql4; toolbar: false;">int count=ArraySize(array1);
for(int i=0; i&lt;count; i++)
  {
   // 一些计算.
  }</pre> 
 <div class="divider top-of-page">
  <a title="Top of Page" href="#top">Back to Top</a>
 </div> 
 <h2><a name="ArraySort"></a>ArraySort() – 数组排序</h2> 
 <pre class="brush: mql4; toolbar: false;">int ArraySort(void array[], void count, void start, void sort_dir)</pre> 
 <p>根据数值型数组的第一维进行排序。ArraySort() 函数不能排序序列数组。</p> 
 <p>参数:</p> 
 <pre>array[] - 需要排序的数值型数组。
count - 参加排序的元素个数。
start - 排序的起始下标。
sort_dir - 排序方式，可以选择下面的值
           MODE_ASCEND  顺序排列，
           MODE_DESCEND 逆序排列。</pre> 
 <p>示例:</p> 
 <pre class="brush: mql4; toolbar: false;">  double num_array[5]={4,1,6,3,9}; // 数组包含4,1,6,3,9
  ArraySort(num_array); // 排序后新数组1,3,4,6,9
  ArraySort(num_array,WHOLE_ARRAY,0,MODE_DESCEND);// 排序后新数组 9,6,4,3,1</pre> 
 <div class="divider top-of-page">
  <a title="Top of Page" href="#top">Back to Top</a>
 </div> 本文地址：
 <a href="385.html" rel="bookmark"><b>385.html</b></a> 
</div>
</body>
</html>